home *** CD-ROM | disk | FTP | other *** search
- /* index1.c: Sort indirectly via an index */
-
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
-
- #define NELEMS 4
-
- static int comp(const void *, const void *);
-
- static int some_ints[NELEMS] = {40,12,37,15};
-
- main()
- {
- size_t i;
- size_t idx[NELEMS] = {0,1,2,3};
-
- qsort(idx,NELEMS,sizeof idx[0],comp);
-
- printf("Sorted array:\n");
- for (i = 0; i < NELEMS; ++i)
- printf("%d\n",some_ints[idx[i]]);
-
- printf("\nOriginal array:\n");
- for (i = 0; i < NELEMS; ++i)
- printf("%d\n",some_ints[i]);
- return 0;
- }
-
- static int comp(const void *p1, const void *p2)
- {
- size_t i = * (size_t *) p1;
- size_t j = * (size_t *) p2;
-
- return some_ints[i] - some_ints[j];
- }
-
- /* Output:
- Sorted array:
- 12
- 15
- 37
- 40
-
- Original array:
- 40
- 12
- 37
- 15
- */
-